KILLED proof of input_AmUhda8kyk.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 44 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) 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), 5 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 592 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 4028 ms] (18) typed CpxTrs (19) RewriteLemmaProof [LOWER BOUND(ID), 2046 ms] (20) typed CpxTrs (21) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (22) TRS for Loop Detection (23) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (24) CpxWeightedTrs (25) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxTypedWeightedTrs (27) CompletionProof [UPPER BOUND(ID), 0 ms] (28) CpxTypedWeightedCompleteTrs (29) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (30) CpxRNTS (31) CompletionProof [UPPER BOUND(ID), 0 ms] (32) CpxTypedWeightedCompleteTrs (33) NarrowingProof [BOTH BOUNDS(ID, ID), 189 ms] (34) CpxTypedWeightedCompleteTrs (35) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 8 ms] (36) CpxRNTS (37) InliningProof [UPPER BOUND(ID), 693 ms] (38) CpxRNTS (39) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CpxRNTS (41) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (42) CdtProblem (43) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CpxRelTRS (49) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (50) CpxTRS (51) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CpxWeightedTrs (53) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CpxTypedWeightedTrs (55) CompletionProof [UPPER BOUND(ID), 6 ms] (56) CpxTypedWeightedCompleteTrs (57) CompletionProof [UPPER BOUND(ID), 45 ms] (58) CpxTypedWeightedCompleteTrs (59) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (60) CpxRNTS (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), 0 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 31 ms] (118) CdtProblem (119) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (122) CdtProblem (123) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (128) CdtProblem (129) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 89 ms] (134) CdtProblem (135) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 65 ms] (138) CdtProblem (139) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 9 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 33 ms] (144) CdtProblem (145) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 12 ms] (146) CdtProblem (147) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 6 ms] (154) CdtProblem (155) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (158) CdtProblem (159) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 19 ms] (166) CdtProblem (167) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (170) CdtProblem (171) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (172) CdtProblem (173) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 22 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 4 ms] (180) CdtProblem (181) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (184) CdtProblem (185) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 34 ms] (188) CdtProblem (189) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (190) CdtProblem (191) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (192) CdtProblem (193) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (194) CdtProblem (195) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 12 ms] (196) CdtProblem (197) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 53 ms] (198) CdtProblem (199) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 10 ms] (200) CdtProblem (201) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 7 ms] (202) CdtProblem (203) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (204) CdtProblem (205) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (206) CdtProblem (207) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (208) CdtProblem (209) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 2 ms] (210) CdtProblem (211) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 4 ms] (212) CdtProblem (213) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 25 ms] (214) CdtProblem (215) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (216) CdtProblem (217) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 5 ms] (218) CdtProblem (219) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (220) CdtProblem (221) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (222) CdtProblem (223) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (224) CdtProblem (225) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (226) CdtProblem (227) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (228) CdtProblem (229) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 10 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 39 ms] (232) CdtProblem (233) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 6 ms] (234) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0) -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0, zeros) a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0) -> 0 mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0') -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0', zeros) a__take(0', IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0') -> 0' mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0) -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0, zeros) a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0) -> 0 mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__ZEROS, A__TAKE_2, A__UTAKE1_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c1, c2_1, c3, c4_2, c5_2, c6, c7, c8_1, c9_1, c10, c11, c12_2, c13_2, c14_2, c15_2, c16, c17, c18, c19_2, c20_3, c21_4, c22_4, c23, c24, c25, c26_1, c27, c28_3, c29_3, c30, c31_2, c32, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c39_1, c40_2, c41_2, c42_2, c43_2, c44_2, c45, c46, c47_1, c48_1, c49 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 The (relative) TRS S consists of the following rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil 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(1, INF). The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 The (relative) TRS S consists of the following rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Types: A__AND :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c:c1 tt :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c:c1 MARK :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c1 :: c:c1 A__ISNATILIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c2:c3:c4:c5:c6 c2 :: c11:c12:c13:c14:c15:c16 -> c2:c3:c4:c5:c6 A__ISNATLIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c11:c12:c13:c14:c15:c16 zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c3 :: c2:c3:c4:c5:c6 cons :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c4 :: c:c1 -> c7:c8:c9:c10 -> c2:c3:c4:c5:c6 a__isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength A__ISNAT :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c7:c8:c9:c10 c5 :: c:c1 -> c2:c3:c4:c5:c6 -> c2:c3:c4:c5:c6 c6 :: c2:c3:c4:c5:c6 0' :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c7 :: c7:c8:c9:c10 s :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c8 :: c7:c8:c9:c10 -> c7:c8:c9:c10 length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c9 :: c11:c12:c13:c14:c15:c16 -> c7:c8:c9:c10 c10 :: c7:c8:c9:c10 nil :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c11 :: c11:c12:c13:c14:c15:c16 c12 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 a__isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c13 :: c:c1 -> c11:c12:c13:c14:c15:c16 -> c11:c12:c13:c14:c15:c16 take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c14 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 c15 :: c:c1 -> c2:c3:c4:c5:c6 -> c11:c12:c13:c14:c15:c16 c16 :: c11:c12:c13:c14:c15:c16 A__ZEROS :: c17:c18 c17 :: c17:c18 c18 :: c17:c18 A__TAKE :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c19:c20:c21:c22:c23 c19 :: c24:c25 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 A__UTAKE1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c24:c25 c20 :: c26:c27 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 A__UTAKE2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c26:c27 a__and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c21 :: c26:c27 -> c:c1 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 c22 :: c26:c27 -> c:c1 -> c:c1 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 c23 :: c19:c20:c21:c22:c23 c24 :: c24:c25 c25 :: c24:c25 c26 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c26:c27 c27 :: c26:c27 A__LENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c28:c29:c30 c28 :: c31:c32 -> c:c1 -> c7:c8:c9:c10 -> c28:c29:c30 A__ULENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c31:c32 c29 :: c31:c32 -> c:c1 -> c11:c12:c13:c14:c15:c16 -> c28:c29:c30 c30 :: c28:c29:c30 c31 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c31:c32 mark :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c32 :: c31:c32 and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c33 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c34 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c35 :: c2:c3:c4:c5:c6 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c36 :: c11:c12:c13:c14:c15:c16 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c37 :: c7:c8:c9:c10 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c38 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c39 :: c17:c18 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c40 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c41 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c42 :: c24:c25 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c43 :: c26:c27 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c44 :: c31:c32 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c45 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c46 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c47 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c48 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c49 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 a__zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c:c11_50 :: c:c1 hole_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength2_50 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c493_50 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 hole_c2:c3:c4:c5:c64_50 :: c2:c3:c4:c5:c6 hole_c11:c12:c13:c14:c15:c165_50 :: c11:c12:c13:c14:c15:c16 hole_c7:c8:c9:c106_50 :: c7:c8:c9:c10 hole_c17:c187_50 :: c17:c18 hole_c19:c20:c21:c22:c238_50 :: c19:c20:c21:c22:c23 hole_c24:c259_50 :: c24:c25 hole_c26:c2710_50 :: c26:c27 hole_c28:c29:c3011_50 :: c28:c29:c30 hole_c31:c3212_50 :: c31:c32 gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50 :: Nat -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50 :: Nat -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 gen_c2:c3:c4:c5:c615_50 :: Nat -> c2:c3:c4:c5:c6 gen_c11:c12:c13:c14:c15:c1616_50 :: Nat -> c11:c12:c13:c14:c15:c16 gen_c7:c8:c9:c1017_50 :: Nat -> c7:c8:c9:c10 ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__AND, MARK, A__ISNATILIST, A__ISNATLIST, a__isNat, a__isNatIList, A__ISNAT, a__isNatList, a__and, A__LENGTH, A__ULENGTH, mark, a__length, a__uLength They will be analysed ascendingly in the following order: A__AND = MARK A__AND = A__ISNATILIST A__AND = A__ISNATLIST A__AND = A__ISNAT A__AND = A__LENGTH A__AND = A__ULENGTH MARK = A__ISNATILIST MARK = A__ISNATLIST a__isNat < MARK a__isNatIList < MARK MARK = A__ISNAT a__and < MARK MARK = A__LENGTH MARK = A__ULENGTH mark < MARK A__ISNATILIST = A__ISNATLIST a__isNat < A__ISNATILIST a__isNatIList < A__ISNATILIST A__ISNATILIST = A__ISNAT A__ISNATILIST = A__LENGTH A__ISNATILIST = A__ULENGTH a__isNat < A__ISNATLIST a__isNatIList < A__ISNATLIST A__ISNATLIST = A__ISNAT a__isNatList < A__ISNATLIST A__ISNATLIST = A__LENGTH A__ISNATLIST = A__ULENGTH a__isNat = a__isNatIList a__isNat = a__isNatList a__isNat = a__and a__isNat < A__LENGTH a__isNat = mark a__isNat = a__length a__isNat = a__uLength a__isNatIList = a__isNatList a__isNatIList = a__and a__isNatIList = mark a__isNatIList = a__length a__isNatIList = a__uLength A__ISNAT = A__LENGTH A__ISNAT = A__ULENGTH a__isNatList = a__and a__isNatList < A__LENGTH a__isNatList = mark a__isNatList = a__length a__isNatList = a__uLength a__and < A__LENGTH a__and = mark a__and = a__length a__and = a__uLength A__LENGTH = A__ULENGTH mark < A__ULENGTH mark = a__length mark = a__uLength a__length = a__uLength ---------------------------------------- (14) Obligation: Innermost TRS: Rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Types: A__AND :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c:c1 tt :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c:c1 MARK :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c1 :: c:c1 A__ISNATILIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c2:c3:c4:c5:c6 c2 :: c11:c12:c13:c14:c15:c16 -> c2:c3:c4:c5:c6 A__ISNATLIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c11:c12:c13:c14:c15:c16 zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c3 :: c2:c3:c4:c5:c6 cons :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c4 :: c:c1 -> c7:c8:c9:c10 -> c2:c3:c4:c5:c6 a__isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength A__ISNAT :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c7:c8:c9:c10 c5 :: c:c1 -> c2:c3:c4:c5:c6 -> c2:c3:c4:c5:c6 c6 :: c2:c3:c4:c5:c6 0' :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c7 :: c7:c8:c9:c10 s :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c8 :: c7:c8:c9:c10 -> c7:c8:c9:c10 length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c9 :: c11:c12:c13:c14:c15:c16 -> c7:c8:c9:c10 c10 :: c7:c8:c9:c10 nil :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c11 :: c11:c12:c13:c14:c15:c16 c12 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 a__isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c13 :: c:c1 -> c11:c12:c13:c14:c15:c16 -> c11:c12:c13:c14:c15:c16 take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c14 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 c15 :: c:c1 -> c2:c3:c4:c5:c6 -> c11:c12:c13:c14:c15:c16 c16 :: c11:c12:c13:c14:c15:c16 A__ZEROS :: c17:c18 c17 :: c17:c18 c18 :: c17:c18 A__TAKE :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c19:c20:c21:c22:c23 c19 :: c24:c25 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 A__UTAKE1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c24:c25 c20 :: c26:c27 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 A__UTAKE2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c26:c27 a__and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c21 :: c26:c27 -> c:c1 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 c22 :: c26:c27 -> c:c1 -> c:c1 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 c23 :: c19:c20:c21:c22:c23 c24 :: c24:c25 c25 :: c24:c25 c26 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c26:c27 c27 :: c26:c27 A__LENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c28:c29:c30 c28 :: c31:c32 -> c:c1 -> c7:c8:c9:c10 -> c28:c29:c30 A__ULENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c31:c32 c29 :: c31:c32 -> c:c1 -> c11:c12:c13:c14:c15:c16 -> c28:c29:c30 c30 :: c28:c29:c30 c31 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c31:c32 mark :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c32 :: c31:c32 and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c33 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c34 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c35 :: c2:c3:c4:c5:c6 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c36 :: c11:c12:c13:c14:c15:c16 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c37 :: c7:c8:c9:c10 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c38 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c39 :: c17:c18 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c40 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c41 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c42 :: c24:c25 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c43 :: c26:c27 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c44 :: c31:c32 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c45 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c46 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c47 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c48 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c49 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 a__zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c:c11_50 :: c:c1 hole_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength2_50 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c493_50 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 hole_c2:c3:c4:c5:c64_50 :: c2:c3:c4:c5:c6 hole_c11:c12:c13:c14:c15:c165_50 :: c11:c12:c13:c14:c15:c16 hole_c7:c8:c9:c106_50 :: c7:c8:c9:c10 hole_c17:c187_50 :: c17:c18 hole_c19:c20:c21:c22:c238_50 :: c19:c20:c21:c22:c23 hole_c24:c259_50 :: c24:c25 hole_c26:c2710_50 :: c26:c27 hole_c28:c29:c3011_50 :: c28:c29:c30 hole_c31:c3212_50 :: c31:c32 gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50 :: Nat -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50 :: Nat -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 gen_c2:c3:c4:c5:c615_50 :: Nat -> c2:c3:c4:c5:c6 gen_c11:c12:c13:c14:c15:c1616_50 :: Nat -> c11:c12:c13:c14:c15:c16 gen_c7:c8:c9:c1017_50 :: Nat -> c7:c8:c9:c10 Generator Equations: gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(0) <=> tt gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(x, 1)) <=> cons(tt, gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(x)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(0) <=> c35(c2(c11)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(+(x, 1)) <=> c33(c(c35(c2(c11))), gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(x)) gen_c2:c3:c4:c5:c615_50(0) <=> c2(c11) gen_c2:c3:c4:c5:c615_50(+(x, 1)) <=> c5(c(c35(c2(c11))), gen_c2:c3:c4:c5:c615_50(x)) gen_c11:c12:c13:c14:c15:c1616_50(0) <=> c11 gen_c11:c12:c13:c14:c15:c1616_50(+(x, 1)) <=> c13(c(c35(c2(c11))), gen_c11:c12:c13:c14:c15:c1616_50(x)) gen_c7:c8:c9:c1017_50(0) <=> c7 gen_c7:c8:c9:c1017_50(+(x, 1)) <=> c8(gen_c7:c8:c9:c1017_50(x)) The following defined symbols remain to be analysed: a__isNatList, A__AND, MARK, A__ISNATILIST, A__ISNATLIST, a__isNat, a__isNatIList, A__ISNAT, a__and, A__LENGTH, A__ULENGTH, mark, a__length, a__uLength They will be analysed ascendingly in the following order: A__AND = MARK A__AND = A__ISNATILIST A__AND = A__ISNATLIST A__AND = A__ISNAT A__AND = A__LENGTH A__AND = A__ULENGTH MARK = A__ISNATILIST MARK = A__ISNATLIST a__isNat < MARK a__isNatIList < MARK MARK = A__ISNAT a__and < MARK MARK = A__LENGTH MARK = A__ULENGTH mark < MARK A__ISNATILIST = A__ISNATLIST a__isNat < A__ISNATILIST a__isNatIList < A__ISNATILIST A__ISNATILIST = A__ISNAT A__ISNATILIST = A__LENGTH A__ISNATILIST = A__ULENGTH a__isNat < A__ISNATLIST a__isNatIList < A__ISNATLIST A__ISNATLIST = A__ISNAT a__isNatList < A__ISNATLIST A__ISNATLIST = A__LENGTH A__ISNATLIST = A__ULENGTH a__isNat = a__isNatIList a__isNat = a__isNatList a__isNat = a__and a__isNat < A__LENGTH a__isNat = mark a__isNat = a__length a__isNat = a__uLength a__isNatIList = a__isNatList a__isNatIList = a__and a__isNatIList = mark a__isNatIList = a__length a__isNatIList = a__uLength A__ISNAT = A__LENGTH A__ISNAT = A__ULENGTH a__isNatList = a__and a__isNatList < A__LENGTH a__isNatList = mark a__isNatList = a__length a__isNatList = a__uLength a__and < A__LENGTH a__and = mark a__and = a__length a__and = a__uLength A__LENGTH = A__ULENGTH mark < A__ULENGTH mark = a__length mark = a__uLength a__length = a__uLength ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n19_50))) -> *18_50, rt in Omega(0) Induction Base: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, 0))) Induction Step: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, +(n19_50, 1)))) ->_R^Omega(0) a__and(a__isNat(tt), a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n19_50)))) ->_R^Omega(0) a__and(isNat(tt), a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n19_50)))) ->_IH a__and(isNat(tt), *18_50) 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__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Types: A__AND :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c:c1 tt :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c:c1 MARK :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c1 :: c:c1 A__ISNATILIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c2:c3:c4:c5:c6 c2 :: c11:c12:c13:c14:c15:c16 -> c2:c3:c4:c5:c6 A__ISNATLIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c11:c12:c13:c14:c15:c16 zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c3 :: c2:c3:c4:c5:c6 cons :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c4 :: c:c1 -> c7:c8:c9:c10 -> c2:c3:c4:c5:c6 a__isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength A__ISNAT :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c7:c8:c9:c10 c5 :: c:c1 -> c2:c3:c4:c5:c6 -> c2:c3:c4:c5:c6 c6 :: c2:c3:c4:c5:c6 0' :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c7 :: c7:c8:c9:c10 s :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c8 :: c7:c8:c9:c10 -> c7:c8:c9:c10 length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c9 :: c11:c12:c13:c14:c15:c16 -> c7:c8:c9:c10 c10 :: c7:c8:c9:c10 nil :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c11 :: c11:c12:c13:c14:c15:c16 c12 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 a__isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c13 :: c:c1 -> c11:c12:c13:c14:c15:c16 -> c11:c12:c13:c14:c15:c16 take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c14 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 c15 :: c:c1 -> c2:c3:c4:c5:c6 -> c11:c12:c13:c14:c15:c16 c16 :: c11:c12:c13:c14:c15:c16 A__ZEROS :: c17:c18 c17 :: c17:c18 c18 :: c17:c18 A__TAKE :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c19:c20:c21:c22:c23 c19 :: c24:c25 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 A__UTAKE1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c24:c25 c20 :: c26:c27 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 A__UTAKE2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c26:c27 a__and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c21 :: c26:c27 -> c:c1 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 c22 :: c26:c27 -> c:c1 -> c:c1 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 c23 :: c19:c20:c21:c22:c23 c24 :: c24:c25 c25 :: c24:c25 c26 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c26:c27 c27 :: c26:c27 A__LENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c28:c29:c30 c28 :: c31:c32 -> c:c1 -> c7:c8:c9:c10 -> c28:c29:c30 A__ULENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c31:c32 c29 :: c31:c32 -> c:c1 -> c11:c12:c13:c14:c15:c16 -> c28:c29:c30 c30 :: c28:c29:c30 c31 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c31:c32 mark :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c32 :: c31:c32 and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c33 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c34 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c35 :: c2:c3:c4:c5:c6 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c36 :: c11:c12:c13:c14:c15:c16 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c37 :: c7:c8:c9:c10 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c38 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c39 :: c17:c18 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c40 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c41 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c42 :: c24:c25 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c43 :: c26:c27 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c44 :: c31:c32 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c45 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c46 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c47 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c48 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c49 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 a__zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c:c11_50 :: c:c1 hole_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength2_50 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c493_50 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 hole_c2:c3:c4:c5:c64_50 :: c2:c3:c4:c5:c6 hole_c11:c12:c13:c14:c15:c165_50 :: c11:c12:c13:c14:c15:c16 hole_c7:c8:c9:c106_50 :: c7:c8:c9:c10 hole_c17:c187_50 :: c17:c18 hole_c19:c20:c21:c22:c238_50 :: c19:c20:c21:c22:c23 hole_c24:c259_50 :: c24:c25 hole_c26:c2710_50 :: c26:c27 hole_c28:c29:c3011_50 :: c28:c29:c30 hole_c31:c3212_50 :: c31:c32 gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50 :: Nat -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50 :: Nat -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 gen_c2:c3:c4:c5:c615_50 :: Nat -> c2:c3:c4:c5:c6 gen_c11:c12:c13:c14:c15:c1616_50 :: Nat -> c11:c12:c13:c14:c15:c16 gen_c7:c8:c9:c1017_50 :: Nat -> c7:c8:c9:c10 Lemmas: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n19_50))) -> *18_50, rt in Omega(0) Generator Equations: gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(0) <=> tt gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(x, 1)) <=> cons(tt, gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(x)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(0) <=> c35(c2(c11)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(+(x, 1)) <=> c33(c(c35(c2(c11))), gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(x)) gen_c2:c3:c4:c5:c615_50(0) <=> c2(c11) gen_c2:c3:c4:c5:c615_50(+(x, 1)) <=> c5(c(c35(c2(c11))), gen_c2:c3:c4:c5:c615_50(x)) gen_c11:c12:c13:c14:c15:c1616_50(0) <=> c11 gen_c11:c12:c13:c14:c15:c1616_50(+(x, 1)) <=> c13(c(c35(c2(c11))), gen_c11:c12:c13:c14:c15:c1616_50(x)) gen_c7:c8:c9:c1017_50(0) <=> c7 gen_c7:c8:c9:c1017_50(+(x, 1)) <=> c8(gen_c7:c8:c9:c1017_50(x)) The following defined symbols remain to be analysed: a__and, A__AND, MARK, A__ISNATILIST, A__ISNATLIST, a__isNat, a__isNatIList, A__ISNAT, A__LENGTH, A__ULENGTH, mark, a__length, a__uLength They will be analysed ascendingly in the following order: A__AND = MARK A__AND = A__ISNATILIST A__AND = A__ISNATLIST A__AND = A__ISNAT A__AND = A__LENGTH A__AND = A__ULENGTH MARK = A__ISNATILIST MARK = A__ISNATLIST a__isNat < MARK a__isNatIList < MARK MARK = A__ISNAT a__and < MARK MARK = A__LENGTH MARK = A__ULENGTH mark < MARK A__ISNATILIST = A__ISNATLIST a__isNat < A__ISNATILIST a__isNatIList < A__ISNATILIST A__ISNATILIST = A__ISNAT A__ISNATILIST = A__LENGTH A__ISNATILIST = A__ULENGTH a__isNat < A__ISNATLIST a__isNatIList < A__ISNATLIST A__ISNATLIST = A__ISNAT a__isNatList < A__ISNATLIST A__ISNATLIST = A__LENGTH A__ISNATLIST = A__ULENGTH a__isNat = a__isNatIList a__isNat = a__isNatList a__isNat = a__and a__isNat < A__LENGTH a__isNat = mark a__isNat = a__length a__isNat = a__uLength a__isNatIList = a__isNatList a__isNatIList = a__and a__isNatIList = mark a__isNatIList = a__length a__isNatIList = a__uLength A__ISNAT = A__LENGTH A__ISNAT = A__ULENGTH a__isNatList = a__and a__isNatList < A__LENGTH a__isNatList = mark a__isNatList = a__length a__isNatList = a__uLength a__and < A__LENGTH a__and = mark a__and = a__length a__and = a__uLength A__LENGTH = A__ULENGTH mark < A__ULENGTH mark = a__length mark = a__uLength a__length = a__uLength ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n565563_50))) -> *18_50, rt in Omega(0) Induction Base: a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, 0))) Induction Step: a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, +(n565563_50, 1)))) ->_R^Omega(0) a__and(a__isNat(tt), a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n565563_50)))) ->_R^Omega(0) a__and(isNat(tt), a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n565563_50)))) ->_IH a__and(isNat(tt), *18_50) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (18) Obligation: Innermost TRS: Rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Types: A__AND :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c:c1 tt :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c:c1 MARK :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c1 :: c:c1 A__ISNATILIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c2:c3:c4:c5:c6 c2 :: c11:c12:c13:c14:c15:c16 -> c2:c3:c4:c5:c6 A__ISNATLIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c11:c12:c13:c14:c15:c16 zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c3 :: c2:c3:c4:c5:c6 cons :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c4 :: c:c1 -> c7:c8:c9:c10 -> c2:c3:c4:c5:c6 a__isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength A__ISNAT :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c7:c8:c9:c10 c5 :: c:c1 -> c2:c3:c4:c5:c6 -> c2:c3:c4:c5:c6 c6 :: c2:c3:c4:c5:c6 0' :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c7 :: c7:c8:c9:c10 s :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c8 :: c7:c8:c9:c10 -> c7:c8:c9:c10 length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c9 :: c11:c12:c13:c14:c15:c16 -> c7:c8:c9:c10 c10 :: c7:c8:c9:c10 nil :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c11 :: c11:c12:c13:c14:c15:c16 c12 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 a__isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c13 :: c:c1 -> c11:c12:c13:c14:c15:c16 -> c11:c12:c13:c14:c15:c16 take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c14 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 c15 :: c:c1 -> c2:c3:c4:c5:c6 -> c11:c12:c13:c14:c15:c16 c16 :: c11:c12:c13:c14:c15:c16 A__ZEROS :: c17:c18 c17 :: c17:c18 c18 :: c17:c18 A__TAKE :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c19:c20:c21:c22:c23 c19 :: c24:c25 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 A__UTAKE1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c24:c25 c20 :: c26:c27 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 A__UTAKE2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c26:c27 a__and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c21 :: c26:c27 -> c:c1 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 c22 :: c26:c27 -> c:c1 -> c:c1 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 c23 :: c19:c20:c21:c22:c23 c24 :: c24:c25 c25 :: c24:c25 c26 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c26:c27 c27 :: c26:c27 A__LENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c28:c29:c30 c28 :: c31:c32 -> c:c1 -> c7:c8:c9:c10 -> c28:c29:c30 A__ULENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c31:c32 c29 :: c31:c32 -> c:c1 -> c11:c12:c13:c14:c15:c16 -> c28:c29:c30 c30 :: c28:c29:c30 c31 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c31:c32 mark :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c32 :: c31:c32 and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c33 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c34 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c35 :: c2:c3:c4:c5:c6 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c36 :: c11:c12:c13:c14:c15:c16 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c37 :: c7:c8:c9:c10 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c38 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c39 :: c17:c18 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c40 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c41 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c42 :: c24:c25 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c43 :: c26:c27 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c44 :: c31:c32 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c45 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c46 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c47 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c48 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c49 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 a__zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c:c11_50 :: c:c1 hole_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength2_50 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c493_50 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 hole_c2:c3:c4:c5:c64_50 :: c2:c3:c4:c5:c6 hole_c11:c12:c13:c14:c15:c165_50 :: c11:c12:c13:c14:c15:c16 hole_c7:c8:c9:c106_50 :: c7:c8:c9:c10 hole_c17:c187_50 :: c17:c18 hole_c19:c20:c21:c22:c238_50 :: c19:c20:c21:c22:c23 hole_c24:c259_50 :: c24:c25 hole_c26:c2710_50 :: c26:c27 hole_c28:c29:c3011_50 :: c28:c29:c30 hole_c31:c3212_50 :: c31:c32 gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50 :: Nat -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50 :: Nat -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 gen_c2:c3:c4:c5:c615_50 :: Nat -> c2:c3:c4:c5:c6 gen_c11:c12:c13:c14:c15:c1616_50 :: Nat -> c11:c12:c13:c14:c15:c16 gen_c7:c8:c9:c1017_50 :: Nat -> c7:c8:c9:c10 Lemmas: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n19_50))) -> *18_50, rt in Omega(0) a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n565563_50))) -> *18_50, rt in Omega(0) Generator Equations: gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(0) <=> tt gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(x, 1)) <=> cons(tt, gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(x)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(0) <=> c35(c2(c11)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(+(x, 1)) <=> c33(c(c35(c2(c11))), gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(x)) gen_c2:c3:c4:c5:c615_50(0) <=> c2(c11) gen_c2:c3:c4:c5:c615_50(+(x, 1)) <=> c5(c(c35(c2(c11))), gen_c2:c3:c4:c5:c615_50(x)) gen_c11:c12:c13:c14:c15:c1616_50(0) <=> c11 gen_c11:c12:c13:c14:c15:c1616_50(+(x, 1)) <=> c13(c(c35(c2(c11))), gen_c11:c12:c13:c14:c15:c1616_50(x)) gen_c7:c8:c9:c1017_50(0) <=> c7 gen_c7:c8:c9:c1017_50(+(x, 1)) <=> c8(gen_c7:c8:c9:c1017_50(x)) The following defined symbols remain to be analysed: a__isNat, A__AND, MARK, A__ISNATILIST, A__ISNATLIST, A__ISNAT, a__isNatList, a__and, A__LENGTH, A__ULENGTH, mark, a__length, a__uLength They will be analysed ascendingly in the following order: A__AND = MARK A__AND = A__ISNATILIST A__AND = A__ISNATLIST A__AND = A__ISNAT A__AND = A__LENGTH A__AND = A__ULENGTH MARK = A__ISNATILIST MARK = A__ISNATLIST a__isNat < MARK a__isNatIList < MARK MARK = A__ISNAT a__and < MARK MARK = A__LENGTH MARK = A__ULENGTH mark < MARK A__ISNATILIST = A__ISNATLIST a__isNat < A__ISNATILIST a__isNatIList < A__ISNATILIST A__ISNATILIST = A__ISNAT A__ISNATILIST = A__LENGTH A__ISNATILIST = A__ULENGTH a__isNat < A__ISNATLIST a__isNatIList < A__ISNATLIST A__ISNATLIST = A__ISNAT a__isNatList < A__ISNATLIST A__ISNATLIST = A__LENGTH A__ISNATLIST = A__ULENGTH a__isNat = a__isNatIList a__isNat = a__isNatList a__isNat = a__and a__isNat < A__LENGTH a__isNat = mark a__isNat = a__length a__isNat = a__uLength a__isNatIList = a__isNatList a__isNatIList = a__and a__isNatIList = mark a__isNatIList = a__length a__isNatIList = a__uLength A__ISNAT = A__LENGTH A__ISNAT = A__ULENGTH a__isNatList = a__and a__isNatList < A__LENGTH a__isNatList = mark a__isNatList = a__length a__isNatList = a__uLength a__and < A__LENGTH a__and = mark a__and = a__length a__and = a__uLength A__LENGTH = A__ULENGTH mark < A__ULENGTH mark = a__length mark = a__uLength a__length = a__uLength ---------------------------------------- (19) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n859962_50))) -> *18_50, rt in Omega(0) Induction Base: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, 0))) Induction Step: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, +(n859962_50, 1)))) ->_R^Omega(0) a__and(a__isNat(tt), a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n859962_50)))) ->_R^Omega(0) a__and(isNat(tt), a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n859962_50)))) ->_IH a__and(isNat(tt), *18_50) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (20) Obligation: Innermost TRS: Rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0') -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0', z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0') -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0') -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0', zeros) a__zeros -> zeros a__take(0', z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0') -> 0' mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Types: A__AND :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c:c1 tt :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c:c1 MARK :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c1 :: c:c1 A__ISNATILIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c2:c3:c4:c5:c6 c2 :: c11:c12:c13:c14:c15:c16 -> c2:c3:c4:c5:c6 A__ISNATLIST :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c11:c12:c13:c14:c15:c16 zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c3 :: c2:c3:c4:c5:c6 cons :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c4 :: c:c1 -> c7:c8:c9:c10 -> c2:c3:c4:c5:c6 a__isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength A__ISNAT :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c7:c8:c9:c10 c5 :: c:c1 -> c2:c3:c4:c5:c6 -> c2:c3:c4:c5:c6 c6 :: c2:c3:c4:c5:c6 0' :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c7 :: c7:c8:c9:c10 s :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c8 :: c7:c8:c9:c10 -> c7:c8:c9:c10 length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c9 :: c11:c12:c13:c14:c15:c16 -> c7:c8:c9:c10 c10 :: c7:c8:c9:c10 nil :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c11 :: c11:c12:c13:c14:c15:c16 c12 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 a__isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c13 :: c:c1 -> c11:c12:c13:c14:c15:c16 -> c11:c12:c13:c14:c15:c16 take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c14 :: c:c1 -> c7:c8:c9:c10 -> c11:c12:c13:c14:c15:c16 c15 :: c:c1 -> c2:c3:c4:c5:c6 -> c11:c12:c13:c14:c15:c16 c16 :: c11:c12:c13:c14:c15:c16 A__ZEROS :: c17:c18 c17 :: c17:c18 c18 :: c17:c18 A__TAKE :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c19:c20:c21:c22:c23 c19 :: c24:c25 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 A__UTAKE1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c24:c25 c20 :: c26:c27 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 A__UTAKE2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c26:c27 a__and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c21 :: c26:c27 -> c:c1 -> c:c1 -> c7:c8:c9:c10 -> c19:c20:c21:c22:c23 c22 :: c26:c27 -> c:c1 -> c:c1 -> c2:c3:c4:c5:c6 -> c19:c20:c21:c22:c23 c23 :: c19:c20:c21:c22:c23 c24 :: c24:c25 c25 :: c24:c25 c26 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c26:c27 c27 :: c26:c27 A__LENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c28:c29:c30 c28 :: c31:c32 -> c:c1 -> c7:c8:c9:c10 -> c28:c29:c30 A__ULENGTH :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> c31:c32 c29 :: c31:c32 -> c:c1 -> c11:c12:c13:c14:c15:c16 -> c28:c29:c30 c30 :: c28:c29:c30 c31 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c31:c32 mark :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c32 :: c31:c32 and :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c33 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c34 :: c:c1 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatIList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c35 :: c2:c3:c4:c5:c6 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNatList :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c36 :: c11:c12:c13:c14:c15:c16 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 isNat :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c37 :: c7:c8:c9:c10 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c38 :: c28:c29:c30 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c39 :: c17:c18 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c40 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c41 :: c19:c20:c21:c22:c23 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c42 :: c24:c25 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c43 :: c26:c27 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength c44 :: c31:c32 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c45 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c46 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c47 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c48 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 c49 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 a__zeros :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c:c11_50 :: c:c1 hole_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength2_50 :: tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength hole_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c493_50 :: c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 hole_c2:c3:c4:c5:c64_50 :: c2:c3:c4:c5:c6 hole_c11:c12:c13:c14:c15:c165_50 :: c11:c12:c13:c14:c15:c16 hole_c7:c8:c9:c106_50 :: c7:c8:c9:c10 hole_c17:c187_50 :: c17:c18 hole_c19:c20:c21:c22:c238_50 :: c19:c20:c21:c22:c23 hole_c24:c259_50 :: c24:c25 hole_c26:c2710_50 :: c26:c27 hole_c28:c29:c3011_50 :: c28:c29:c30 hole_c31:c3212_50 :: c31:c32 gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50 :: Nat -> tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50 :: Nat -> c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c49 gen_c2:c3:c4:c5:c615_50 :: Nat -> c2:c3:c4:c5:c6 gen_c11:c12:c13:c14:c15:c1616_50 :: Nat -> c11:c12:c13:c14:c15:c16 gen_c7:c8:c9:c1017_50 :: Nat -> c7:c8:c9:c10 Lemmas: a__isNatList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n859962_50))) -> *18_50, rt in Omega(0) a__isNatIList(gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(1, n565563_50))) -> *18_50, rt in Omega(0) Generator Equations: gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(0) <=> tt gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(+(x, 1)) <=> cons(tt, gen_tt:zeros:cons:0':s:length:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength13_50(x)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(0) <=> c35(c2(c11)) gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(+(x, 1)) <=> c33(c(c35(c2(c11))), gen_c33:c34:c35:c36:c37:c38:c39:c40:c41:c42:c43:c44:c45:c46:c47:c48:c4914_50(x)) gen_c2:c3:c4:c5:c615_50(0) <=> c2(c11) gen_c2:c3:c4:c5:c615_50(+(x, 1)) <=> c5(c(c35(c2(c11))), gen_c2:c3:c4:c5:c615_50(x)) gen_c11:c12:c13:c14:c15:c1616_50(0) <=> c11 gen_c11:c12:c13:c14:c15:c1616_50(+(x, 1)) <=> c13(c(c35(c2(c11))), gen_c11:c12:c13:c14:c15:c1616_50(x)) gen_c7:c8:c9:c1017_50(0) <=> c7 gen_c7:c8:c9:c1017_50(+(x, 1)) <=> c8(gen_c7:c8:c9:c1017_50(x)) The following defined symbols remain to be analysed: a__and, A__AND, MARK, A__ISNATILIST, A__ISNATLIST, A__ISNAT, A__LENGTH, A__ULENGTH, mark They will be analysed ascendingly in the following order: A__AND = MARK A__AND = A__ISNATILIST A__AND = A__ISNATLIST A__AND = A__ISNAT A__AND = A__LENGTH A__AND = A__ULENGTH MARK = A__ISNATILIST MARK = A__ISNATLIST a__isNat < MARK a__isNatIList < MARK MARK = A__ISNAT a__and < MARK MARK = A__LENGTH MARK = A__ULENGTH mark < MARK A__ISNATILIST = A__ISNATLIST a__isNat < A__ISNATILIST a__isNatIList < A__ISNATILIST A__ISNATILIST = A__ISNAT A__ISNATILIST = A__LENGTH A__ISNATILIST = A__ULENGTH a__isNat < A__ISNATLIST a__isNatIList < A__ISNATLIST A__ISNATLIST = A__ISNAT a__isNatList < A__ISNATLIST A__ISNATLIST = A__LENGTH A__ISNATLIST = A__ULENGTH a__isNat = a__isNatIList a__isNat = a__isNatList a__isNat = a__and a__isNat < A__LENGTH a__isNat = mark a__isNat = a__length a__isNat = a__uLength a__isNatIList = a__isNatList a__isNatIList = a__and a__isNatIList = mark a__isNatIList = a__length a__isNatIList = a__uLength A__ISNAT = A__LENGTH A__ISNAT = A__ULENGTH a__isNatList = a__and a__isNatList < A__LENGTH a__isNatList = mark a__isNatList = a__length a__isNatList = a__uLength a__and < A__LENGTH a__and = mark a__and = a__length a__and = a__uLength A__LENGTH = A__ULENGTH mark < A__ULENGTH mark = a__length mark = a__uLength a__length = a__uLength ---------------------------------------- (21) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (22) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 The (relative) TRS S consists of the following rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (23) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (24) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (25) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (26) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (27) 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 ---------------------------------------- (28) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (29) 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 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatIList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatList(L)) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatIList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 1 }-> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 1 }-> a__uTake1(a__isNatIList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 1 }-> 1 + a__length(mark(L)) :|: z = 2, L >= 0, z' = L a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 1 }-> a__uTake2(mark(X1), X2, X3, X4) :|: X1 >= 0, z = 1 + X1 + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> a__uTake1(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__uLength(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__length(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (31) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: mark_1 a__isNat_1 a__isNatIList_1 a__and_2 a__isNatList_1 a__uLength_2 a__uTake1_1 a__length_1 a__uTake2_4 a__take_2 a__zeros Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (32) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (33) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (34) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(0, IL)) -> a__and(tt, a__isNatList(IL)) [3] a__isNatIList(cons(0, zeros)) -> a__and(tt, tt) [3] a__isNatIList(cons(0, cons(N'', IL'))) -> a__and(tt, a__and(a__isNat(N''), a__isNatIList(IL'))) [3] a__isNatIList(cons(0, IL)) -> a__and(tt, isNatIList(IL)) [3] a__isNatIList(cons(s(N'), IL)) -> a__and(a__isNat(N'), a__isNatList(IL)) [3] a__isNatIList(cons(s(N'), zeros)) -> a__and(a__isNat(N'), tt) [3] a__isNatIList(cons(s(N'), cons(N1, IL''))) -> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) [3] a__isNatIList(cons(s(N'), IL)) -> a__and(a__isNat(N'), isNatIList(IL)) [3] a__isNatIList(cons(length(L'), IL)) -> a__and(a__isNatList(L'), a__isNatList(IL)) [3] a__isNatIList(cons(length(L'), zeros)) -> a__and(a__isNatList(L'), tt) [3] a__isNatIList(cons(length(L'), cons(N2, IL1))) -> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) [3] a__isNatIList(cons(length(L'), IL)) -> a__and(a__isNatList(L'), isNatIList(IL)) [3] a__isNatIList(cons(N, IL)) -> a__and(isNat(N), a__isNatList(IL)) [3] a__isNatIList(cons(N, zeros)) -> a__and(isNat(N), tt) [3] a__isNatIList(cons(N, cons(N3, IL2))) -> a__and(isNat(N), a__and(a__isNat(N3), a__isNatIList(IL2))) [3] a__isNatIList(cons(N, IL)) -> a__and(isNat(N), isNatIList(IL)) [3] a__isNatList(nil) -> tt [1] a__isNatList(cons(0, nil)) -> a__and(tt, tt) [3] a__isNatList(cons(0, cons(N5, L1))) -> a__and(tt, a__and(a__isNat(N5), a__isNatList(L1))) [3] a__isNatList(cons(0, take(N6, IL3))) -> a__and(tt, a__and(a__isNat(N6), a__isNatIList(IL3))) [3] a__isNatList(cons(0, L)) -> a__and(tt, isNatList(L)) [3] a__isNatList(cons(s(N4), nil)) -> a__and(a__isNat(N4), tt) [3] a__isNatList(cons(s(N4), cons(N7, L2))) -> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) [3] a__isNatList(cons(s(N4), take(N8, IL4))) -> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) [3] a__isNatList(cons(s(N4), L)) -> a__and(a__isNat(N4), isNatList(L)) [3] a__isNatList(cons(length(L''), nil)) -> a__and(a__isNatList(L''), tt) [3] a__isNatList(cons(length(L''), cons(N9, L3))) -> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) [3] a__isNatList(cons(length(L''), take(N10, IL5))) -> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) [3] a__isNatList(cons(length(L''), L)) -> a__and(a__isNatList(L''), isNatList(L)) [3] a__isNatList(cons(N, nil)) -> a__and(isNat(N), tt) [3] a__isNatList(cons(N, cons(N11, L4))) -> a__and(isNat(N), a__and(a__isNat(N11), a__isNatList(L4))) [3] a__isNatList(cons(N, take(N12, IL6))) -> a__and(isNat(N), a__and(a__isNat(N12), a__isNatIList(IL6))) [3] a__isNatList(cons(N, L)) -> a__and(isNat(N), isNatList(L)) [3] a__isNatList(take(0, IL)) -> a__and(tt, a__isNatList(IL)) [3] a__isNatList(take(0, zeros)) -> a__and(tt, tt) [3] a__isNatList(take(0, cons(N14, IL7))) -> a__and(tt, a__and(a__isNat(N14), a__isNatIList(IL7))) [3] a__isNatList(take(0, IL)) -> a__and(tt, isNatIList(IL)) [3] a__isNatList(take(s(N13), IL)) -> a__and(a__isNat(N13), a__isNatList(IL)) [3] a__isNatList(take(s(N13), zeros)) -> a__and(a__isNat(N13), tt) [3] a__isNatList(take(s(N13), cons(N15, IL8))) -> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) [3] a__isNatList(take(s(N13), IL)) -> a__and(a__isNat(N13), isNatIList(IL)) [3] a__isNatList(take(length(L5), IL)) -> a__and(a__isNatList(L5), a__isNatList(IL)) [3] a__isNatList(take(length(L5), zeros)) -> a__and(a__isNatList(L5), tt) [3] a__isNatList(take(length(L5), cons(N16, IL9))) -> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) [3] a__isNatList(take(length(L5), IL)) -> a__and(a__isNatList(L5), isNatIList(IL)) [3] a__isNatList(take(N, IL)) -> a__and(isNat(N), a__isNatList(IL)) [3] a__isNatList(take(N, zeros)) -> a__and(isNat(N), tt) [3] a__isNatList(take(N, cons(N17, IL10))) -> a__and(isNat(N), a__and(a__isNat(N17), a__isNatIList(IL10))) [3] a__isNatList(take(N, IL)) -> a__and(isNat(N), isNatIList(IL)) [3] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatList(IL)) [2] a__take(0, zeros) -> a__uTake1(tt) [2] a__take(0, cons(N18, IL11)) -> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) [2] a__take(0, IL) -> a__uTake1(isNatIList(IL)) [2] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(0, nil)) -> a__uLength(a__and(tt, tt), nil) [3] a__length(cons(0, cons(N41, L12))) -> a__uLength(a__and(tt, a__and(a__isNat(N41), a__isNatList(L12))), cons(N41, L12)) [3] a__length(cons(0, take(N42, IL28))) -> a__uLength(a__and(tt, a__and(a__isNat(N42), a__isNatIList(IL28))), take(N42, IL28)) [3] a__length(cons(0, L)) -> a__uLength(a__and(tt, isNatList(L)), L) [3] a__length(cons(s(N40), nil)) -> a__uLength(a__and(a__isNat(N40), tt), nil) [3] a__length(cons(s(N40), cons(N43, L13))) -> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), cons(N43, L13)) [3] a__length(cons(s(N40), take(N44, IL29))) -> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), take(N44, IL29)) [3] a__length(cons(s(N40), L)) -> a__uLength(a__and(a__isNat(N40), isNatList(L)), L) [3] a__length(cons(length(L11), nil)) -> a__uLength(a__and(a__isNatList(L11), tt), nil) [3] a__length(cons(length(L11), cons(N45, L14))) -> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), cons(N45, L14)) [3] a__length(cons(length(L11), take(N46, IL30))) -> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), take(N46, IL30)) [3] a__length(cons(length(L11), L)) -> a__uLength(a__and(a__isNatList(L11), isNatList(L)), L) [3] a__length(cons(N, nil)) -> a__uLength(a__and(isNat(N), tt), nil) [3] a__length(cons(N, cons(N47, L15))) -> a__uLength(a__and(isNat(N), a__and(a__isNat(N47), a__isNatList(L15))), cons(N47, L15)) [3] a__length(cons(N, take(N48, IL31))) -> a__uLength(a__and(isNat(N), a__and(a__isNat(N48), a__isNatIList(IL31))), take(N48, IL31)) [3] a__length(cons(N, L)) -> a__uLength(a__and(isNat(N), isNatList(L)), L) [3] a__uLength(tt, and(X1', X2')) -> s(a__length(a__and(mark(X1'), mark(X2')))) [2] a__uLength(tt, isNatIList(X')) -> s(a__length(a__isNatIList(X'))) [2] a__uLength(tt, isNatList(X'')) -> s(a__length(a__isNatList(X''))) [2] a__uLength(tt, isNat(X5)) -> s(a__length(a__isNat(X5))) [2] a__uLength(tt, length(X6)) -> s(a__length(a__length(mark(X6)))) [2] a__uLength(tt, zeros) -> s(a__length(a__zeros)) [2] a__uLength(tt, take(X1'', X2'')) -> s(a__length(a__take(mark(X1''), mark(X2'')))) [2] a__uLength(tt, uTake1(X7)) -> s(a__length(a__uTake1(mark(X7)))) [2] a__uLength(tt, uTake2(X11, X21, X3', X4')) -> s(a__length(a__uTake2(mark(X11), X21, X3', X4'))) [2] a__uLength(tt, uLength(X12, X22)) -> s(a__length(a__uLength(mark(X12), X22))) [2] a__uLength(tt, tt) -> s(a__length(tt)) [2] a__uLength(tt, 0) -> s(a__length(0)) [2] a__uLength(tt, s(X8)) -> s(a__length(s(mark(X8)))) [2] a__uLength(tt, cons(X13, X23)) -> s(a__length(cons(mark(X13), X23))) [2] a__uLength(tt, nil) -> s(a__length(nil)) [2] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(and(X1100, X284))) -> a__length(a__and(mark(X1100), mark(X284))) [2] mark(length(isNatIList(X200))) -> a__length(a__isNatIList(X200)) [2] mark(length(isNatList(X201))) -> a__length(a__isNatList(X201)) [2] mark(length(isNat(X202))) -> a__length(a__isNat(X202)) [2] mark(length(length(X203))) -> a__length(a__length(mark(X203))) [2] mark(length(zeros)) -> a__length(a__zeros) [2] mark(length(take(X1101, X285))) -> a__length(a__take(mark(X1101), mark(X285))) [2] mark(length(uTake1(X204))) -> a__length(a__uTake1(mark(X204))) [2] mark(length(uTake2(X1102, X286, X324, X423))) -> a__length(a__uTake2(mark(X1102), X286, X324, X423)) [2] mark(length(uLength(X1103, X287))) -> a__length(a__uLength(mark(X1103), X287)) [2] mark(length(tt)) -> a__length(tt) [2] mark(length(0)) -> a__length(0) [2] mark(length(s(X205))) -> a__length(s(mark(X205))) [2] mark(length(cons(X1104, X288))) -> a__length(cons(mark(X1104), X288)) [2] mark(length(nil)) -> a__length(nil) [2] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(and(X1185, X2174))) -> a__uTake1(a__and(mark(X1185), mark(X2174))) [2] mark(uTake1(isNatIList(X445))) -> a__uTake1(a__isNatIList(X445)) [2] mark(uTake1(isNatList(X446))) -> a__uTake1(a__isNatList(X446)) [2] mark(uTake1(isNat(X447))) -> a__uTake1(a__isNat(X447)) [2] mark(uTake1(length(X448))) -> a__uTake1(a__length(mark(X448))) [2] mark(uTake1(zeros)) -> a__uTake1(a__zeros) [2] mark(uTake1(take(X1186, X2175))) -> a__uTake1(a__take(mark(X1186), mark(X2175))) [2] mark(uTake1(uTake1(X449))) -> a__uTake1(a__uTake1(mark(X449))) [2] mark(uTake1(uTake2(X1187, X2176, X3103, X450))) -> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) [2] mark(uTake1(uLength(X1188, X2177))) -> a__uTake1(a__uLength(mark(X1188), X2177)) [2] mark(uTake1(tt)) -> a__uTake1(tt) [2] mark(uTake1(0)) -> a__uTake1(0) [2] mark(uTake1(s(X451))) -> a__uTake1(s(mark(X451))) [2] mark(uTake1(cons(X1189, X2178))) -> a__uTake1(cons(mark(X1189), X2178)) [2] mark(uTake1(nil)) -> a__uTake1(nil) [2] mark(uTake2(and(X1190, X2179), X2, X3, X4)) -> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) [2] mark(uTake2(isNatIList(X452), X2, X3, X4)) -> a__uTake2(a__isNatIList(X452), X2, X3, X4) [2] mark(uTake2(isNatList(X453), X2, X3, X4)) -> a__uTake2(a__isNatList(X453), X2, X3, X4) [2] mark(uTake2(isNat(X454), X2, X3, X4)) -> a__uTake2(a__isNat(X454), X2, X3, X4) [2] mark(uTake2(length(X455), X2, X3, X4)) -> a__uTake2(a__length(mark(X455)), X2, X3, X4) [2] mark(uTake2(zeros, X2, X3, X4)) -> a__uTake2(a__zeros, X2, X3, X4) [2] mark(uTake2(take(X1191, X2180), X2, X3, X4)) -> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) [2] mark(uTake2(uTake1(X456), X2, X3, X4)) -> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) [2] mark(uTake2(uTake2(X1192, X2181, X3104, X457), X2, X3, X4)) -> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) [2] mark(uTake2(uLength(X1193, X2182), X2, X3, X4)) -> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) [2] mark(uTake2(tt, X2, X3, X4)) -> a__uTake2(tt, X2, X3, X4) [2] mark(uTake2(0, X2, X3, X4)) -> a__uTake2(0, X2, X3, X4) [2] mark(uTake2(s(X458), X2, X3, X4)) -> a__uTake2(s(mark(X458)), X2, X3, X4) [2] mark(uTake2(cons(X1194, X2183), X2, X3, X4)) -> a__uTake2(cons(mark(X1194), X2183), X2, X3, X4) [2] mark(uTake2(nil, X2, X3, X4)) -> a__uTake2(nil, X2, X3, X4) [2] mark(uLength(and(X1195, X2184), X2)) -> a__uLength(a__and(mark(X1195), mark(X2184)), X2) [2] mark(uLength(isNatIList(X459), X2)) -> a__uLength(a__isNatIList(X459), X2) [2] mark(uLength(isNatList(X460), X2)) -> a__uLength(a__isNatList(X460), X2) [2] mark(uLength(isNat(X461), X2)) -> a__uLength(a__isNat(X461), X2) [2] mark(uLength(length(X462), X2)) -> a__uLength(a__length(mark(X462)), X2) [2] mark(uLength(zeros, X2)) -> a__uLength(a__zeros, X2) [2] mark(uLength(take(X1196, X2185), X2)) -> a__uLength(a__take(mark(X1196), mark(X2185)), X2) [2] mark(uLength(uTake1(X463), X2)) -> a__uLength(a__uTake1(mark(X463)), X2) [2] mark(uLength(uTake2(X1197, X2186, X3105, X464), X2)) -> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) [2] mark(uLength(uLength(X1198, X2187), X2)) -> a__uLength(a__uLength(mark(X1198), X2187), X2) [2] mark(uLength(tt, X2)) -> a__uLength(tt, X2) [2] mark(uLength(0, X2)) -> a__uLength(0, X2) [2] mark(uLength(s(X465), X2)) -> a__uLength(s(mark(X465)), X2) [2] mark(uLength(cons(X1199, X2188), X2)) -> a__uLength(cons(mark(X1199), X2188), X2) [2] mark(uLength(nil, X2)) -> a__uLength(nil, X2) [2] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (35) 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 ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 2) :|: L' >= 0, z = 1 + (1 + L') + 3 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 2) :|: z = 1 + (1 + N') + 3, N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 2) :|: z = 1 + (1 + L'') + 1, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 2) :|: L5 >= 0, z = 1 + (1 + L5) + 3 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 2) :|: z = 1 + (1 + N13) + 3, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 2) :|: z = 1 + (1 + N4) + 1, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 1 + L) :|: z = 1 + 0 + L, L >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 1, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 2), 1) :|: z = 1 + (1 + L11) + 1, L11 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 2), 1) :|: z = 1 + (1 + N40) + 1, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + L), L) :|: z = 1 + 0 + L, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 2), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 2 }-> a__uTake1(2) :|: z' = 3, z = 0 a__take(z, z') -{ 2 }-> a__uTake1(1 + IL) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(X7))) :|: z = 2, X7 >= 0, z' = 1 + X7 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X6))) :|: z = 2, X6 >= 0, z' = 1 + X6 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X')) :|: z = 2, X' >= 0, z' = 1 + X' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 2 }-> a__uTake2(a__zeros, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(X449))) :|: X449 >= 0, z = 1 + (1 + X449) mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(X448))) :|: z = 1 + (1 + X448), X448 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(X446)) :|: X446 >= 0, z = 1 + (1 + X446) mark(z) -{ 2 }-> a__uTake1(a__isNatIList(X445)) :|: z = 1 + (1 + X445), X445 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(X447)) :|: z = 1 + (1 + X447), X447 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__uTake1(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__uTake1(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X451)) :|: X451 >= 0, z = 1 + (1 + X451) mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 2 }-> a__uLength(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(X204))) :|: z = 1 + (1 + X204), X204 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(X203))) :|: z = 1 + (1 + X203), X203 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X201)) :|: X201 >= 0, z = 1 + (1 + X201) mark(z) -{ 2 }-> a__length(a__isNatIList(X200)) :|: z = 1 + (1 + X200), X200 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X202)) :|: X202 >= 0, z = 1 + (1 + X202) mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X205)) :|: z = 1 + (1 + X205), X205 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (37) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 2) :|: L' >= 0, z = 1 + (1 + L') + 3 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 2) :|: z = 1 + (1 + N') + 3, N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 2) :|: z = 1 + (1 + L'') + 1, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 2) :|: L5 >= 0, z = 1 + (1 + L5) + 3 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 2) :|: z = 1 + (1 + N13) + 3, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 2) :|: z = 1 + (1 + N4) + 1, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 1 + L) :|: z = 1 + 0 + L, L >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 1, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 2), 1) :|: z = 1 + (1 + L11) + 1, L11 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 2), 1) :|: z = 1 + (1 + N40) + 1, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + L), L) :|: z = 1 + 0 + L, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 2), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 3 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 3 }-> 1 :|: z' = IL, z = 0, IL >= 0, 1 + IL = 2 a__take(z, z') -{ 3 }-> 1 + X :|: z' = 3, z = 0, X >= 0, 2 = X a__take(z, z') -{ 3 }-> 1 + X :|: z' = IL, z = 0, IL >= 0, X >= 0, 1 + IL = X a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(X7))) :|: z = 2, X7 >= 0, z' = 1 + X7 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X6))) :|: z = 2, X6 >= 0, z' = 1 + X6 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X')) :|: z = 2, X' >= 0, z' = 1 + X' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(X449))) :|: X449 >= 0, z = 1 + (1 + X449) mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(X448))) :|: z = 1 + (1 + X448), X448 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(X446)) :|: X446 >= 0, z = 1 + (1 + X446) mark(z) -{ 2 }-> a__uTake1(a__isNatIList(X445)) :|: z = 1 + (1 + X445), X445 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(X447)) :|: z = 1 + (1 + X447), X447 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X451)) :|: X451 >= 0, z = 1 + (1 + X451) mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 3 }-> a__uLength(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__uLength(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 3 }-> a__uLength(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(X204))) :|: z = 1 + (1 + X204), X204 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(X203))) :|: z = 1 + (1 + X203), X203 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X201)) :|: X201 >= 0, z = 1 + (1 + X201) mark(z) -{ 2 }-> a__length(a__isNatIList(X200)) :|: z = 1 + (1 + X200), X200 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X202)) :|: X202 >= 0, z = 1 + (1 + X202) mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X205)) :|: z = 1 + (1 + X205), X205 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 3 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 3 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 1 + 0 + 3 = X mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (39) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__isNat(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatIList(z) -{ 1 }-> a__isNatList(z) :|: z >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(z - 5), 2) :|: z - 5 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(z - 5), 2) :|: z - 5 >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + (z - 4), 2) :|: z - 4 >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(z - 5), 2) :|: z - 5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(z - 3), 2) :|: z - 3 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(z - 5), 2) :|: z - 5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(z - 3), 2) :|: z - 3 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + (z - 4), 2) :|: z - 4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + (z - 2), 2) :|: z - 2 >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + z :|: z >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(z - 3), 2), 1) :|: z - 3 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(z - 3), 2), 1) :|: z - 3 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + (z - 1)), z - 1) :|: z - 1 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + (z - 2), 2), 1) :|: z - 2 >= 0 a__length(z) -{ 1 }-> 1 + z :|: z >= 0 a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(z - 1), a__and(a__isNat(N), a__isNatIList(IL))), z - 1, N, IL) :|: z - 1 >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(z')) :|: z = 0, z' >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 3 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 3 }-> 1 :|: z = 0, z' >= 0, 1 + z' = 2 a__take(z, z') -{ 3 }-> 1 + X :|: z' = 3, z = 0, X >= 0, 2 = X a__take(z, z') -{ 3 }-> 1 + X :|: z = 0, z' >= 0, X >= 0, 1 + z' = X a__take(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + z :|: z >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(z'') + (1 + z' + z1) :|: z = 2, z' >= 0, z1 >= 0, z'' >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + z + z' + z'' + z1 :|: z >= 0, z'' >= 0, z' >= 0, z1 >= 0 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 3 }-> a__uLength(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__uLength(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__uLength(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uLength(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 3 }-> a__uLength(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNatIList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 3 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 3 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 1 + 0 + 3 = X mark(z) -{ 1 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (41) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__ZEROS, A__TAKE_2, A__UTAKE1_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c1, c2_1, c3, c4_2, c5_2, c6, c7, c8_1, c9_1, c10, c11, c12_2, c13_2, c14_2, c15_2, c16, c17, c18, c19_2, c20_3, c21_4, c22_4, c23, c24, c25, c26_1, c27, c28_3, c29_3, c30, c31_2, c32, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c39_1, c40_2, c41_2, c42_2, c43_2, c44_2, c45, c46, c47_1, c48_1, c49 ---------------------------------------- (43) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 19 trailing nodes: A__UTAKE1(tt) -> c24 A__ULENGTH(z0, z1) -> c32 MARK(tt) -> c45 A__LENGTH(z0) -> c30 A__UTAKE2(z0, z1, z2, z3) -> c27 A__UTAKE1(z0) -> c25 A__AND(z0, z1) -> c1 A__ZEROS -> c18 A__ISNAT(z0) -> c10 A__ISNAT(0) -> c7 A__ISNATILIST(zeros) -> c3 A__ZEROS -> c17 A__ISNATLIST(nil) -> c11 A__TAKE(z0, z1) -> c23 MARK(zeros) -> c39(A__ZEROS) A__ISNATILIST(z0) -> c6 MARK(nil) -> c49 MARK(0) -> c46 A__ISNATLIST(z0) -> c16 ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c4_2, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c19_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c42_2, c43_2, c44_2, c47_1, c48_1 ---------------------------------------- (45) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c4_2, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1 ---------------------------------------- (47) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (48) 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__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) The (relative) TRS S consists of the following rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (49) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (50) 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__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (51) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (52) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) [1] A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) [1] A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) [1] A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) [1] MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) [1] MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) [1] MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) [1] MARK(isNat(z0)) -> c37(A__ISNAT(z0)) [1] MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) [1] MARK(s(z0)) -> c47(MARK(z0)) [1] MARK(cons(z0, z1)) -> c48(MARK(z0)) [1] A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) [1] MARK(uTake1(z0)) -> c42(MARK(z0)) [1] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNat(0) -> tt [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) [0] a__take(z0, z1) -> take(z0, z1) [0] a__uTake1(tt) -> nil [0] a__uTake1(z0) -> uTake1(z0) [0] a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) [0] a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) [0] a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) [0] a__length(z0) -> length(z0) [0] a__uLength(tt, z0) -> s(a__length(mark(z0))) [0] a__uLength(z0, z1) -> uLength(z0, z1) [0] mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(zeros) -> a__zeros [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(uTake1(z0)) -> a__uTake1(mark(z0)) [0] mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) [0] mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) [0] mark(tt) -> tt [0] mark(0) -> 0 [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(nil) -> nil [0] Rewrite Strategy: INNERMOST ---------------------------------------- (53) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (54) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) [1] A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) [1] A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) [1] A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) [1] MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) [1] MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) [1] MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) [1] MARK(isNat(z0)) -> c37(A__ISNAT(z0)) [1] MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) [1] MARK(s(z0)) -> c47(MARK(z0)) [1] MARK(cons(z0, z1)) -> c48(MARK(z0)) [1] A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) [1] MARK(uTake1(z0)) -> c42(MARK(z0)) [1] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNat(0) -> tt [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) [0] a__take(z0, z1) -> take(z0, z1) [0] a__uTake1(tt) -> nil [0] a__uTake1(z0) -> uTake1(z0) [0] a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) [0] a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) [0] a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) [0] a__length(z0) -> length(z0) [0] a__uLength(tt, z0) -> s(a__length(mark(z0))) [0] a__uLength(z0, z1) -> uLength(z0, z1) [0] mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(zeros) -> a__zeros [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(uTake1(z0)) -> a__uTake1(mark(z0)) [0] mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) [0] mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) [0] mark(tt) -> tt [0] mark(0) -> 0 [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(nil) -> nil [0] The TRS has the following type information: A__AND :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c tt :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c MARK :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 A__ISNATILIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c2:c4:c5 c2 :: c12:c13:c14:c15 -> c2:c4:c5 A__ISNATLIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c12:c13:c14:c15 cons :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c4 :: c -> c8:c9 -> c2:c4:c5 a__isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil A__ISNAT :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c8:c9 c5 :: c -> c2:c4:c5 -> c2:c4:c5 s :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c8 :: c8:c9 -> c8:c9 length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c9 :: c12:c13:c14:c15 -> c8:c9 c12 :: c -> c8:c9 -> c12:c13:c14:c15 a__isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c13 :: c -> c12:c13:c14:c15 -> c12:c13:c14:c15 take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c14 :: c -> c8:c9 -> c12:c13:c14:c15 c15 :: c -> c2:c4:c5 -> c12:c13:c14:c15 A__TAKE :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c20:c21:c22:c19 c20 :: c26 -> c -> c8:c9 -> c20:c21:c22:c19 A__UTAKE2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c26 a__and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c21 :: c26 -> c -> c -> c8:c9 -> c20:c21:c22:c19 c22 :: c26 -> c -> c -> c2:c4:c5 -> c20:c21:c22:c19 c26 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c26 A__LENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c28:c29 c28 :: c31 -> c -> c8:c9 -> c28:c29 A__ULENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> c31 c29 :: c31 -> c -> c12:c13:c14:c15 -> c28:c29 c31 :: c28:c29 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c31 mark :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c33 :: c -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c34 :: c -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c35 :: c2:c4:c5 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c36 :: c12:c13:c14:c15 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c37 :: c8:c9 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c38 :: c28:c29 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c40 :: c20:c21:c22:c19 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c41 :: c20:c21:c22:c19 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c43 :: c26 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c44 :: c31 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c47 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c48 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 0 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c19 :: c2:c4:c5 -> c20:c21:c22:c19 uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil c42 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil nil :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil a__uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil Rewrite Strategy: INNERMOST ---------------------------------------- (55) 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__AND_2 A__ISNATILIST_1 A__ISNAT_1 A__ISNATLIST_1 A__TAKE_2 A__UTAKE2_4 A__LENGTH_1 A__ULENGTH_2 MARK_1 (c) The following functions are completely defined: a__and_2 a__isNatIList_1 a__isNat_1 a__isNatList_1 a__zeros a__take_2 a__uTake1_1 a__uTake2_4 a__length_1 a__uLength_2 mark_1 Due to the following rules being added: a__and(v0, v1) -> null_a__and [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNat(v0) -> null_a__isNat [0] a__isNatList(v0) -> null_a__isNatList [0] a__zeros -> null_a__zeros [0] a__take(v0, v1) -> null_a__take [0] a__uTake1(v0) -> null_a__uTake1 [0] a__uTake2(v0, v1, v2, v3) -> null_a__uTake2 [0] a__length(v0) -> null_a__length [0] a__uLength(v0, v1) -> null_a__uLength [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__and, null_a__isNatIList, null_a__isNat, null_a__isNatList, null_a__zeros, null_a__take, null_a__uTake1, null_a__uTake2, null_a__length, null_a__uLength, null_mark, const, const1, const2, const3, const4, const5, const6, const7, const8 ---------------------------------------- (56) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) [1] A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) [1] A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) [1] A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) [1] MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) [1] MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) [1] MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) [1] MARK(isNat(z0)) -> c37(A__ISNAT(z0)) [1] MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) [1] MARK(s(z0)) -> c47(MARK(z0)) [1] MARK(cons(z0, z1)) -> c48(MARK(z0)) [1] A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) [1] MARK(uTake1(z0)) -> c42(MARK(z0)) [1] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNat(0) -> tt [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) [0] a__take(z0, z1) -> take(z0, z1) [0] a__uTake1(tt) -> nil [0] a__uTake1(z0) -> uTake1(z0) [0] a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) [0] a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) [0] a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) [0] a__length(z0) -> length(z0) [0] a__uLength(tt, z0) -> s(a__length(mark(z0))) [0] a__uLength(z0, z1) -> uLength(z0, z1) [0] mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(zeros) -> a__zeros [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(uTake1(z0)) -> a__uTake1(mark(z0)) [0] mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) [0] mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) [0] mark(tt) -> tt [0] mark(0) -> 0 [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(nil) -> nil [0] a__and(v0, v1) -> null_a__and [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNat(v0) -> null_a__isNat [0] a__isNatList(v0) -> null_a__isNatList [0] a__zeros -> null_a__zeros [0] a__take(v0, v1) -> null_a__take [0] a__uTake1(v0) -> null_a__uTake1 [0] a__uTake2(v0, v1, v2, v3) -> null_a__uTake2 [0] a__length(v0) -> null_a__length [0] a__uLength(v0, v1) -> null_a__uLength [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__AND :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c tt :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c MARK :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 A__ISNATILIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c2:c4:c5 c2 :: c12:c13:c14:c15 -> c2:c4:c5 A__ISNATLIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c12:c13:c14:c15 cons :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c4 :: c -> c8:c9 -> c2:c4:c5 a__isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark A__ISNAT :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c8:c9 c5 :: c -> c2:c4:c5 -> c2:c4:c5 s :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c8 :: c8:c9 -> c8:c9 length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c9 :: c12:c13:c14:c15 -> c8:c9 c12 :: c -> c8:c9 -> c12:c13:c14:c15 a__isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c13 :: c -> c12:c13:c14:c15 -> c12:c13:c14:c15 take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c14 :: c -> c8:c9 -> c12:c13:c14:c15 c15 :: c -> c2:c4:c5 -> c12:c13:c14:c15 A__TAKE :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c20:c21:c22:c19 c20 :: c26 -> c -> c8:c9 -> c20:c21:c22:c19 A__UTAKE2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c26 a__and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c21 :: c26 -> c -> c -> c8:c9 -> c20:c21:c22:c19 c22 :: c26 -> c -> c -> c2:c4:c5 -> c20:c21:c22:c19 c26 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c26 A__LENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c28:c29 c28 :: c31 -> c -> c8:c9 -> c28:c29 A__ULENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c31 c29 :: c31 -> c -> c12:c13:c14:c15 -> c28:c29 c31 :: c28:c29 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c31 mark :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c33 :: c -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c34 :: c -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c35 :: c2:c4:c5 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c36 :: c12:c13:c14:c15 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c37 :: c8:c9 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c38 :: c28:c29 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c40 :: c20:c21:c22:c19 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c41 :: c20:c21:c22:c19 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c43 :: c26 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c44 :: c31 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c47 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 c48 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 0 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c19 :: c2:c4:c5 -> c20:c21:c22:c19 uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c42 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark nil :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_mark :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark const :: c const1 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42 const2 :: c2:c4:c5 const3 :: c12:c13:c14:c15 const4 :: c8:c9 const5 :: c20:c21:c22:c19 const6 :: c26 const7 :: c28:c29 const8 :: c31 Rewrite Strategy: INNERMOST ---------------------------------------- (57) 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__and(v0, v1) -> null_a__and [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNat(v0) -> null_a__isNat [0] a__isNatList(v0) -> null_a__isNatList [0] a__zeros -> null_a__zeros [0] a__take(v0, v1) -> null_a__take [0] a__uTake1(v0) -> null_a__uTake1 [0] a__uTake2(v0, v1, v2, v3) -> null_a__uTake2 [0] a__length(v0) -> null_a__length [0] a__uLength(v0, v1) -> null_a__uLength [0] mark(v0) -> null_mark [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__TAKE(v0, v1) -> null_A__TAKE [0] A__UTAKE2(v0, v1, v2, v3) -> null_A__UTAKE2 [0] A__LENGTH(v0) -> null_A__LENGTH [0] A__ULENGTH(v0, v1) -> null_A__ULENGTH [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__and, null_a__isNatIList, null_a__isNat, null_a__isNatList, null_a__zeros, null_a__take, null_a__uTake1, null_a__uTake2, null_a__length, null_a__uLength, null_mark, null_A__AND, null_A__ISNAT, null_A__ISNATLIST, null_A__TAKE, null_A__UTAKE2, null_A__LENGTH, null_A__ULENGTH, null_MARK, const ---------------------------------------- (58) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__AND(tt, z0) -> c(MARK(z0)) [1] A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) [1] A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) [1] A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) [1] A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) [1] A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) [1] A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) [1] A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) [1] A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) [1] MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) [1] MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) [1] MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) [1] MARK(isNat(z0)) -> c37(A__ISNAT(z0)) [1] MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) [1] MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) [1] MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) [1] MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) [1] MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) [1] MARK(s(z0)) -> c47(MARK(z0)) [1] MARK(cons(z0, z1)) -> c48(MARK(z0)) [1] A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) [1] MARK(uTake1(z0)) -> c42(MARK(z0)) [1] a__and(tt, z0) -> mark(z0) [0] a__and(z0, z1) -> and(z0, z1) [0] a__isNatIList(z0) -> a__isNatList(z0) [0] a__isNatIList(zeros) -> tt [0] a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatIList(z0) -> isNatIList(z0) [0] a__isNat(0) -> tt [0] a__isNat(s(z0)) -> a__isNat(z0) [0] a__isNat(length(z0)) -> a__isNatList(z0) [0] a__isNat(z0) -> isNat(z0) [0] a__isNatList(nil) -> tt [0] a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) [0] a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) [0] a__isNatList(z0) -> isNatList(z0) [0] a__zeros -> cons(0, zeros) [0] a__zeros -> zeros [0] a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) [0] a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) [0] a__take(z0, z1) -> take(z0, z1) [0] a__uTake1(tt) -> nil [0] a__uTake1(z0) -> uTake1(z0) [0] a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) [0] a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) [0] a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) [0] a__length(z0) -> length(z0) [0] a__uLength(tt, z0) -> s(a__length(mark(z0))) [0] a__uLength(z0, z1) -> uLength(z0, z1) [0] mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) [0] mark(isNatIList(z0)) -> a__isNatIList(z0) [0] mark(isNatList(z0)) -> a__isNatList(z0) [0] mark(isNat(z0)) -> a__isNat(z0) [0] mark(length(z0)) -> a__length(mark(z0)) [0] mark(zeros) -> a__zeros [0] mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) [0] mark(uTake1(z0)) -> a__uTake1(mark(z0)) [0] mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) [0] mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) [0] mark(tt) -> tt [0] mark(0) -> 0 [0] mark(s(z0)) -> s(mark(z0)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(nil) -> nil [0] a__and(v0, v1) -> null_a__and [0] a__isNatIList(v0) -> null_a__isNatIList [0] a__isNat(v0) -> null_a__isNat [0] a__isNatList(v0) -> null_a__isNatList [0] a__zeros -> null_a__zeros [0] a__take(v0, v1) -> null_a__take [0] a__uTake1(v0) -> null_a__uTake1 [0] a__uTake2(v0, v1, v2, v3) -> null_a__uTake2 [0] a__length(v0) -> null_a__length [0] a__uLength(v0, v1) -> null_a__uLength [0] mark(v0) -> null_mark [0] A__AND(v0, v1) -> null_A__AND [0] A__ISNAT(v0) -> null_A__ISNAT [0] A__ISNATLIST(v0) -> null_A__ISNATLIST [0] A__TAKE(v0, v1) -> null_A__TAKE [0] A__UTAKE2(v0, v1, v2, v3) -> null_A__UTAKE2 [0] A__LENGTH(v0) -> null_A__LENGTH [0] A__ULENGTH(v0, v1) -> null_A__ULENGTH [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__AND :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c:null_A__AND tt :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c:null_A__AND MARK :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK A__ISNATILIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c2:c4:c5 c2 :: c12:c13:c14:c15:null_A__ISNATLIST -> c2:c4:c5 A__ISNATLIST :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c12:c13:c14:c15:null_A__ISNATLIST cons :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c4 :: c:null_A__AND -> c8:c9:null_A__ISNAT -> c2:c4:c5 a__isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark A__ISNAT :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c8:c9:null_A__ISNAT c5 :: c:null_A__AND -> c2:c4:c5 -> c2:c4:c5 s :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c8 :: c8:c9:null_A__ISNAT -> c8:c9:null_A__ISNAT length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c9 :: c12:c13:c14:c15:null_A__ISNATLIST -> c8:c9:null_A__ISNAT c12 :: c:null_A__AND -> c8:c9:null_A__ISNAT -> c12:c13:c14:c15:null_A__ISNATLIST a__isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c13 :: c:null_A__AND -> c12:c13:c14:c15:null_A__ISNATLIST -> c12:c13:c14:c15:null_A__ISNATLIST take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c14 :: c:null_A__AND -> c8:c9:null_A__ISNAT -> c12:c13:c14:c15:null_A__ISNATLIST c15 :: c:null_A__AND -> c2:c4:c5 -> c12:c13:c14:c15:null_A__ISNATLIST A__TAKE :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c20:c21:c22:c19:null_A__TAKE c20 :: c26:null_A__UTAKE2 -> c:null_A__AND -> c8:c9:null_A__ISNAT -> c20:c21:c22:c19:null_A__TAKE A__UTAKE2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c26:null_A__UTAKE2 a__and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c21 :: c26:null_A__UTAKE2 -> c:null_A__AND -> c:null_A__AND -> c8:c9:null_A__ISNAT -> c20:c21:c22:c19:null_A__TAKE c22 :: c26:null_A__UTAKE2 -> c:null_A__AND -> c:null_A__AND -> c2:c4:c5 -> c20:c21:c22:c19:null_A__TAKE c26 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c26:null_A__UTAKE2 A__LENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c28:c29:null_A__LENGTH c28 :: c31:null_A__ULENGTH -> c:null_A__AND -> c8:c9:null_A__ISNAT -> c28:c29:null_A__LENGTH A__ULENGTH :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> c31:null_A__ULENGTH c29 :: c31:null_A__ULENGTH -> c:null_A__AND -> c12:c13:c14:c15:null_A__ISNATLIST -> c28:c29:null_A__LENGTH c31 :: c28:c29:null_A__LENGTH -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c31:null_A__ULENGTH mark :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c33 :: c:null_A__AND -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c34 :: c:null_A__AND -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c35 :: c2:c4:c5 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c36 :: c12:c13:c14:c15:null_A__ISNATLIST -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c37 :: c8:c9:null_A__ISNAT -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c38 :: c28:c29:null_A__LENGTH -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c40 :: c20:c21:c22:c19:null_A__TAKE -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c41 :: c20:c21:c22:c19:null_A__TAKE -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c43 :: c26:null_A__UTAKE2 -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c44 :: c31:null_A__ULENGTH -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c47 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK c48 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK 0 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c19 :: c2:c4:c5 -> c20:c21:c22:c19:null_A__TAKE uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark c42 :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK -> c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark nil :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark a__uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark -> tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__and :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNatIList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNat :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__isNatList :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__zeros :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__take :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uTake1 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uTake2 :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__length :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_a__uLength :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_mark :: tt:cons:s:length:take:and:isNatIList:isNatList:isNat:uTake2:uLength:0:uTake1:zeros:nil:null_a__and:null_a__isNatIList:null_a__isNat:null_a__isNatList:null_a__zeros:null_a__take:null_a__uTake1:null_a__uTake2:null_a__length:null_a__uLength:null_mark null_A__AND :: c:null_A__AND null_A__ISNAT :: c8:c9:null_A__ISNAT null_A__ISNATLIST :: c12:c13:c14:c15:null_A__ISNATLIST null_A__TAKE :: c20:c21:c22:c19:null_A__TAKE null_A__UTAKE2 :: c26:null_A__UTAKE2 null_A__LENGTH :: c28:c29:null_A__LENGTH null_A__ULENGTH :: c31:null_A__ULENGTH null_MARK :: c33:c34:c35:c36:c37:c38:c40:c41:c43:c44:c47:c48:c42:null_MARK const :: c2:c4:c5 Rewrite Strategy: INNERMOST ---------------------------------------- (59) 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__and => 0 null_a__isNatIList => 0 null_a__isNat => 0 null_a__isNatList => 0 null_a__zeros => 0 null_a__take => 0 null_a__uTake1 => 0 null_a__uTake2 => 0 null_a__length => 0 null_a__uLength => 0 null_mark => 0 null_A__AND => 0 null_A__ISNAT => 0 null_A__ISNATLIST => 0 null_A__TAKE => 0 null_A__UTAKE2 => 0 null_A__LENGTH => 0 null_A__ULENGTH => 0 null_MARK => 0 const => 0 ---------------------------------------- (60) 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), a__isNatIList(z1)) + A__ISNATILIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATILIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), a__isNatIList(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), a__isNatList(z1)) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), a__isNatList(z1)) + A__ISNAT(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), a__isNatIList(z1)) + A__ISNATILIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__ISNATLIST(z) -{ 1 }-> 1 + A__AND(a__isNat(z0), a__isNatIList(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__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1) + A__AND(a__isNat(z0), a__isNatList(z1)) + A__ISNATLIST(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 A__LENGTH(z) -{ 1 }-> 1 + A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1) + A__AND(a__isNat(z0), a__isNatList(z1)) + A__ISNAT(z0) :|: 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__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) + A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))) + A__ISNAT(z0) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) + A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))) + A__AND(a__isNat(z1), a__isNatIList(z2)) + A__ISNATILIST(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__TAKE(z, z') -{ 1 }-> 1 + A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) + A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))) + A__AND(a__isNat(z1), a__isNatIList(z2)) + A__ISNAT(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__ULENGTH(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__ULENGTH(z, z') -{ 1 }-> 1 + A__LENGTH(mark(z0)) + MARK(z0) :|: z = 2, z0 >= 0, z' = z0 A__UTAKE2(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 A__UTAKE2(z, z', z'', z4) -{ 1 }-> 1 + MARK(z1) :|: 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) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 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__UTAKE2(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__ULENGTH(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), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__AND(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 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), a__isNatIList(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), a__isNatList(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 a__isNatList(z) -{ 0 }-> a__and(a__isNat(z0), a__isNatIList(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__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 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__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__take(z, z') -{ 0 }-> a__uTake1(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__uLength(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__uLength(z, z') -{ 0 }-> 1 + a__length(mark(z0)) :|: z = 2, z0 >= 0, z' = z0 a__uLength(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__uTake1(z) -{ 0 }-> 1 :|: z = 2 a__uTake1(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__uTake1(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__uTake2(z, z', z'', z4) -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, z4 = v3, v2 >= 0, v3 >= 0 a__uTake2(z, z', z'', z4) -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z2 >= 0, z'' = z1, z4 = z2 a__uTake2(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__zeros -{ 0 }-> 3 :|: a__zeros -{ 0 }-> 0 :|: a__zeros -{ 0 }-> 1 + 0 + 3 :|: mark(z) -{ 0 }-> a__zeros :|: z = 3 mark(z) -{ 0 }-> a__uTake2(mark(z0), z1, z2, z3) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 + z2 + z3, z2 >= 0, z3 >= 0 mark(z) -{ 0 }-> a__uTake1(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__uLength(mark(z0), z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 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), mark(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. ---------------------------------------- (61) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) by A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1 ---------------------------------------- (65) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) by A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) by A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) by A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1 ---------------------------------------- (77) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) by A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) by A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) by A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) by A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) by A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) by A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) by A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) by A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2 ---------------------------------------- (107) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) by MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2 ---------------------------------------- (113) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) by MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2 ---------------------------------------- (119) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) by MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2 ---------------------------------------- (123) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2 ---------------------------------------- (125) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1 ---------------------------------------- (127) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) by MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2 ---------------------------------------- (129) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2 ---------------------------------------- (131) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) by MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2 ---------------------------------------- (135) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1 ---------------------------------------- (137) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) by MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2 ---------------------------------------- (139) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2 ---------------------------------------- (141) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) by MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2 ---------------------------------------- (145) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2 ---------------------------------------- (147) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (149) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) by A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (151) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (153) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) by A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (155) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (157) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) by A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (159) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (161) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) by A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (163) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (165) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) by A__ISNATILIST(cons(s(x0), z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (167) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (169) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) by A__ISNATILIST(cons(length(x0), z0)) -> c4(A__AND(a__isNatList(x0), a__isNatList(z0)), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), zeros)) -> c4(A__AND(a__isNatList(x0), tt), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), cons(z0, z1))) -> c4(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), z0)) -> c4(A__AND(a__isNatList(x0), isNatIList(z0)), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (171) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (173) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) by A__ISNATILIST(cons(0, z0)) -> c4(A__AND(tt, a__isNatList(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(0, cons(z0, z1))) -> c4(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1)))) A__ISNATILIST(cons(0, z0)) -> c4(A__AND(tt, isNatIList(z0))) ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (175) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) by A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) by A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (181) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) by A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (185) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (187) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) by A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (189) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (191) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(0, z0)) -> c5(A__AND(tt, a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(0, cons(z0, z1))) -> c5(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(0, z0)) -> c5(A__AND(tt, isNatIList(z0)), A__ISNATILIST(z0)) ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (193) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(s(x0), z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(s(x0), zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(x0), cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(s(x0), z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (195) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (197) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(length(x0), z0)) -> c5(A__AND(a__isNatList(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(length(x0), zeros)) -> c5(A__AND(a__isNatList(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(x0), cons(z0, z1))) -> c5(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(length(x0), z0)) -> c5(A__AND(a__isNatList(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (199) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (201) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) by A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (203) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (205) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) by A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (207) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (209) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) by A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (211) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (213) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) by A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (215) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (217) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) by A__ISNATLIST(cons(s(x0), nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (219) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (221) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) by A__ISNATLIST(cons(length(x0), nil)) -> c12(A__AND(a__isNatList(x0), tt), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), cons(z0, z1))) -> c12(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), take(z0, z1))) -> c12(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), z0)) -> c12(A__AND(a__isNatList(x0), isNatList(z0)), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (223) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (225) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) by A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(0, cons(z0, z1))) -> c12(A__AND(tt, a__and(a__isNat(z0), a__isNatList(z1)))) A__ISNATLIST(cons(0, take(z0, z1))) -> c12(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1)))) A__ISNATLIST(cons(0, z0)) -> c12(A__AND(tt, isNatList(z0))) ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (227) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) by A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (229) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (231) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) by A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (233) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2